<?php

namespace SisesporteAdmin\Controller;

use Zend\View\Model\ViewModel;

class InstituicaoEnsinoController extends CrudController
{

    public function __construct ()
    {
        $this->entity = "Sisesporte\Entity\InstituicaoEnsino";
        $this->form = "SisesporteAdmin\Form\InstituicaoEnsinoForm";
        $this->service = "Sisesporte\Service\InstituicaoEnsinoService";
        $this->controller = "instituicao-ensino";
        $this->route = "sisesporte-admin";
    }

    protected $msg;

    public function newAction ()
    {
        $form = new $this->form();
        $request = $this->getRequest();

        if ($request->isPost()) {

            $array = $request->getPost();
            $array['stAtivo'] = true;
            $form->setData($array);
            $service = $this->getServiceLocator()->get($this->service);
            $obj = $request->getPost()->toArray();
            $erro = false;

            if ($obj["InTipoEscola"] == "" || $obj["noInstituicaoEnsino"] == "") {
                $this->msg = false;
                $erro = 'Todos os campos são obrigatórios.';
            } else {
                if (count($service->getByNoInstituicaoEnsino($obj[noInstituicaoEnsino], $obj["InTipoEscola"])) == 0) {
                    $service->insert($obj);
                    $this->msg = true;
                } else {
                    $this->msg = false;
                    $erro = 'Escola já existente, não é possível incluir.';
                }
            }
        }
        return new ViewModel(array('form' => $form, 'msg' => $this->msg, 'error' => $erro));
    }

    public function editAction ()
    {
        $form = new $this->form();
        $request = $this->getRequest();

        $repository = $this->getEm()->getRepository($this->entity);
        $entity = $repository->find($this->params()->fromRoute('id', 0));

        if ($this->params()->fromRoute('id', 0)) {
            $array = $entity->toArray();
            $array['stAtivo'] = true;
            $form->setData($array);
        }

        if ($request->isPost()) {
            $form->setData($request->getPost());
            if ($form->isValid()) {
                $service = $this->getServiceLocator()->get($this->service);
                $service->update($this->params()->fromRoute('id', 0), $request->getPost()->toArray());
                $this->msg = true;
            }
        }

        return new ViewModel(array('form' => $form, 'entity' => $entity->toArray(), 'msg' => $this->msg));
    }

    public function deleteAction ()
    {
        $service = $this->getServiceLocator()->get($this->service);
        $service->delete($this->params()->fromRoute('id', 0));
    }

}
